/* 
    学习一下 generator 生成器函数 配合异步操作
    需求: 异步嵌套
    1s后打印 1
    2s后打印 2
    3s后打印 3
*/

/* setTimeout(() => {
    console.log(1);

    setTimeout(() => {
        console.log(2);
        setTimeout(() => {
            console.log(3);

        }, 3000)

    }, 2000)
}, 1000) 
*/


function* run() {
    yield setTimeout(() => {
        console.log(1);
    }, 1000);
    yield setTimeout(() => {
        console.log(2);
    }, 2000);
    yield setTimeout(() => {
        console.log(3);
    }, 3000);
    return 'over';
}

const iterator = run();

/* 
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next());
console.log(iterator.next()); */
iterator.next();
iterator.next();
iterator.next();
/* 如果稍后可以让 next 自动名自动即可，实现使用同步的方式去写异步的逻辑代码 √ */